#-*- coding: utf8 -*-

from tutor.script import *
from tutor.plugin.maple import *

# meta information
meta(author       = 'Fábio Mendes',
     creationdate = datetime(2010, 10, 9),
     status       = 'testing',
     difficulty   = 'easy',
     time         = 10,
     itemtype     = 'test')

# seleciona pontos
alpha = oneof(2, 4)
k = oneof(1, 2, 3, 4, 6, 8) / M(2)
a = oneof(1, 2, 3, 4, 6, 8) / M(2)
b = a + oneof(1, 2, 3, 4, 6, 8) / M(2)

# define ponto de intersecção
ptx = M.simplify(((b-a)/k)**(M(1)/alpha))
yf = b - k*x**alpha
xf = M.simplify(((b - y)/k) ** (M(1)/alpha))

question('Inverta a ordem de integração de \n\n'
         '$$\\int_{#1}^{#2} dx \\int_{#3}^{#4} dy\\ f(x,y).$$', -ptx, ptx, a, yf)
multiplechoice()

intyx = '$\\int_{#1}^{#2} dy \\int_{#3}^{#4} dx\\ f(x,y)$'

# choice: (a)
choice(1, intyx, a, b, -xf, xf)
explanation('Escolha correta!') 

# choice: (b)
choice(0.25, intyx, a, b, 0, xf)
explanation('Omitiu a região $x<0$ do domínio de integração') 

# choice: (c)
choice(0, intyx, a, b, -ptx, ptx)
explanation('Integração feita sobre um quadrado.') 

# choice: (d)
choice(0, intyx, a, b, xf, xf)
explanation('Existem duas funções $x=x(y)$. Você utilizou apenas uma das soluções.')

# choice: (e)
choice(0, intyx, -ptx, ptx, -M.subs(x==y, yf), M.subs(x==y, yf))
explanation('Simplesmente trocou $x$ por $y$ na integral. Isso não funciona.')

end()